;-------- loader & kernel --------
LOADER_BASE_ADDR equ 0x900
LOADER_START_SECTOR equ 0x2
PAGE_DIR_TABLE_POS equ 0x100000
;-------- gdt描述符属性 --------
DESC_G_4K       equ     10000000_00000000_00000000b
DESC_D_32       equ     01000000_00000000_00000000b
DESC_L          equ     00100000_00000000_00000000b
;64位代码标记，此处标记位0便可
DESC_AVL        equ     00000000_00000000_00000000b;暂时没用设为0
DESC_LIMIT_CODE2    equ 1111_00000000_00000000b
DESC_LIMIT_DATA2    equ DESC_LIMIT_CODE2
DESC_LIMIT_VIDEO2   equ 0000_00000000_00001011b
DESC_P          equ     10000000_00000000b
DESC_DPL_0      equ     00000000_00000000b
DESC_DPL_1      equ     00100000_00000000b
DESC_DPL_2      equ     01000000_00000000b
DESC_DPL_3      equ     01100000_00000000b
DESC_S_CODE     equ     00010000_00000000b
DESC_S_DATA     equ     DESC_S_CODE
DESC_S_SYS      equ     00000000_00000000b
;x=1,c=0,r=0,a=0代码段是可执行的，非一致性，不可读，已访问位a清0
DESC_TYPE_CODE  equ     1000_00000000b
;x=0,c=0,r=1,a=0数据段是不可执行的，向上扩张，可写，已访问位a清0
DESC_TYPE_DATA  equ     0010_00000000b

DESC_CODE_HIGH4 equ     (0x00<<24)+DESC_G_4K+DESC_D_32+DESC_L+DESC_AVL+DESC_LIMIT_CODE2+DESC_P+DESC_DPL_0+DESC_S_CODE+DESC_TYPE_CODE+0x00

DESC_DATA_HIGH4 equ     (0x00<<24)+DESC_G_4K+DESC_D_32+DESC_L+DESC_AVL+DESC_LIMIT_DATA2+DESC_P+DESC_DPL_0+DESC_S_DATA+DESC_TYPE_DATA+0x00

DESC_VIDEO_HIGH4    equ    (0x00<<24)+DESC_G_4K+DESC_D_32+DESC_L+DESC_AVL+DESC_LIMIT_VIDEO2+DESC_P+DESC_DPL_0+DESC_S_DATA+DESC_TYPE_DATA+0x00  

;-------- 选择子属性 --------
RPL0    equ     00b
RPL1    equ     01b
RPL2    equ     10b
RPL3    equ     11b

TI_GDT  equ     000b
TI_LDT  equ     100b

;------------ attribute of page table -------------------
PG_P equ 1b
PG_RW_R equ 00b
PG_RW_W equ 10b
PG_US_S equ 000b
PG_US_U equ 100b

